Cloud computing includes the provision of computational resources on demand via a computer network. The resources can be embodied as various infrastructure services (e.g. compute, storage, etc.) as well as applications, databases, file services, email, etc. In the traditional model of computing, both data and software are typically fully contained on the user's computer; in cloud computing, the user's computer may contain little software or data (perhaps an operating system and/or web browser), and may serve as little more than a display terminal for processes occurring on a network of external computers. A cloud computing service (or an aggregation of multiple cloud resources) may be generally referred to as the “Cloud”.
Cloud storage may include a model of networked computer data storage where data is stored on multiple virtual servers, rather than being hosted on dedicated servers. Hosting companies may operate large data centers, and customers who desire their data to be hosted may buy or lease storage capacity from them to meet storage needs. The data center operators, in the background, may virtualize the resources according to the requirements of the customer and expose them as virtual servers, which the customers can themselves manage. Physically, the resource may span across multiple servers.
The expected proliferation of cloud computing and data storage is a consideration in designing highly scalable systems with lesser total cost of ownership (TCO), and security may be a concern for organizations to start storing their data in the cloud. However, known encryption practices and algorithms may be less than ideal for use with a cloud-based system, in light of the size and rate of growth of the data. In particular, such encryption algorithms may be limited in the ability to scale dynamically for higher volumes of data, and thus, may not be feasible for use in a system built on a cloud infrastructure. Also, as such encryption practices may require frequent rotation of encryption keys, these approaches may result in service level agreements (SLAs) that grow along with data size.